package com.tencent.iov.cowin.befsale.clue.service.clue;

import com.tencent.iov.cowin.befsale.clue.controller.clue.vo.request.AccessAddClueInitialRequest;
import com.tencent.iov.cowin.befsale.clue.controller.clue.vo.request.AddClueInitialAfterWashRequest;
import com.tencent.iov.cowin.befsale.clue.controller.clue.vo.request.ClueFollowUpRequest;
import com.tencent.iov.cowin.befsale.clue.dao.kafka.response.ClueRecordSyncRequest;
import com.tencent.iov.cowin.befsale.clue.domain.clue.po.ClueInitial;

import java.util.List;

/**
 * @Describe: 线索异步方法类
 * @author: add by zly
 * @created: 2022-01-20
 * @version: 1.0
 */

public interface ClueSyncService {
    /**
     * 线索下发异步执行部分
     * @param request
     * @return
     */
    void createClueWithfollowUpSync(ClueFollowUpRequest request,Integer sendType);

    /**
     * 同步信息到宽表
     * @param request
     * @param dealerId
     * @param oemCustomerId
     * @param dealerCustomerId
     * @param clueId
     * @param oemPlanId
     * @param dealerPlanId
     */
    void insertCustomerCollectWithFollowUp(ClueFollowUpRequest request, String dealerId, Long oemCustomerId, Long dealerCustomerId,
                                           Long clueId, Long oemPlanId, Long dealerPlanId);

    /**
     * add by zly
     * 2022-01-21
     * 线索源意向车系信息处理
     * @param request
     * @param initialClueId
     */
    void initClueIntentionVehicle(AddClueInitialAfterWashRequest request, Long initialClueId, String tenantId, String corpId, String dealerId, ClueInitial c);


    String checkOneId(String oneId,String dealerId,Long followEmpId,String tenantId,String corpId);


    /**
     * add by zly
     * 2022-01-22
     * 线索源意向信息入库--将车型code,车系code转化为对应的id，name
     */
    void initClueIntentionVehicleByCode(List<AccessAddClueInitialRequest.VehicleSeriesAndModelRequest> intentionVehicleList,Long initialClueId,String tenantId,String corpId,String dealerId);

    void handleClueRecord(ClueRecordSyncRequest clueRecordRequest);

}